home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
090
/
pctjoc85.arc
/
LST1ASM.BAS
< prev
next >
Wrap
BASIC Source File
|
1985-07-05
|
2KB
|
56 lines
100 ' PROGRAM TO CONVERT .LST FILE CREATED BY MASM TO .ASM FILE
110 ' NOTE: SET OBJLEN TO 40 IF LISTING WAS PRODUCED
120 ' WITH .CRF FILE
130 OBJLEN = 32
140 '
150 CLS
160 PRINT "Enter name of .LST file (no extension)"
170 INPUT; FIL$
180 OPEN FIL$+".LST" FOR INPUT AS #1
190 OPEN FIL$+".ASM" FOR OUTPUT AS #2
200 PRINT " "
210 ROW = CSRLIN
220 COUNT = 0
230 PRINT COUNT; " records written"
240 '
250 '--------------------------- MAIN PROCESS LOOP
260 IF EOF(1) GOTO 610
270 LINE INPUT #1, IN$ 'READ A LINE FROM LST FILE
280 IF LEN(IN$)=0 GOTO 260 'IGNORE NULL LINES
290 '
300 ' HANDLE NEW PAGE: IF START OF SYMBOL TABLE, THEN ALL DONE
310 ' OTHERWISE, SKIP 4 LINES OF HEADING
320 IF LEFT$(IN$,1) <> CHR$(12) GOTO 420
330 IF INSTR(38, IN$, "Symbol") GOTO 610
340 FOR X = 2 TO 5
350 IF EOF(1) GOTO 610
360 LINE INPUT #1, IN$
370 NEXT
380 GOTO 320
390 '
400 ' IGNORE LINES GENERATED BY MACRO.
410 ' THEY HAVE + IN COL OBJLEN-1, NOT PRECEDED BY TABS
420 IF MID$(IN$,OBJLEN-1,1) = "+" GOTO 260
430 '
440 'SCAN INPUT LINE, COUNTING CHARACTERS AND EXPANDING TABS
450 ' UNTIL OBJLEN CHARACTERS ARE COUNTED OR END OF INPUT LINE.
460 ' IF END OF LINE, IGNORE IT; OTHERWISE WRITE OUT REMAINDER
470 '
480 C = 0 : X = 1
490 FOR X = 1 TO LEN(IN$)
500 IF MID$(IN$,X,1)=CHR$(9) THEN C=C+8-C MOD 8 ELSE C=C+1
510 IF C < OBJLEN GOTO 570
520 PRINT #2, MID$(IN$, X+1)
530 COUNT = COUNT + 1
540 LOCATE ROW,1
550 PRINT COUNT
560 GOTO 580
570 NEXT
580 GOTO 260 '------------- END OF MAIN LOOP
590 '
600 '--------------------------------- WRAPUP PROCESS
610 PRINT " "
620 CLOSE
630 PRINT "File "; FIL$; ".ASM ready"
640 END